#include <func.h>

int main(int argc, char* argv[])
{
    int fd = open("a.txt", O_RDWR | O_CREAT | O_TRUNC, 0666);
    if (fd == -1) {
        perror("open()");
        exit(1);
    }

    pid_t pid = fork();
    switch (pid) {
    case -1:
        perror("fork()");
        exit(1);
    case 0:  // 子进程
        close(STDOUT_FILENO);
        sleep(3);
        break;
    default: // 父进程
        sleep(1);
        int newfd = dup(fd);  // 找最小可用的文件描述符
        printf("newfd = %d\n", newfd);  // newfd == 1, 共享; newfd == 4, 私有
        break;
    }

    return 0;
}

